---
id: 什么是反向代理？
sidebar_position: 2.2
label: 什么是反向代理？
description: 反向代理是服务器端的代理，代理服务器屏蔽了目标服务器，由代理服务器决定用户请求的去向。
---

## 正向代理
* 客户端请求到达目标服务器之间的一个代理服务器
* 请求会先经过代理服务器，然后再转发请求到目标服务器，获得内容后最后响应给客户端
<figure>
    <img src={require('./img/正向代理.jpg').default}/>
    <center><figcaption>正向代理</figcaption></center>
</figure>

## 网关、反向代理

<figure>
    <img src={require('./img/反向代理.png').default}/>
    <center><figcaption>反向代理</figcaption></center>
</figure>
用户的请求通过互联网到达内网的网关路由上，再通过网关到达 nginx服务器，然后再通过nginx将所有的用户请求都转发到后端的应用服务器，后端的应用与外网不通。<br/>
* 在Nginx上代理了用户的请求。Nginx主动提供了访问入口<br/>
* 用户请求目标服务器，由代理服务器决定访问那个ip，代理服务器屏蔽了目标服务器。<br/>

网关：访问网络的入口就叫做网关，所有的请求、响应都得经过网关。用于中转。
:::tip
正向代理：客户端和代理服务器是网络互通的，客户端和目标服务器不是网络互通的。 <br/>
反向代理：客户端和目标服务器不是网络互通的，服务器和代理服务器网络互通。<br/>
**总结**：正向代理代理客户端，反向代理代理服务器<br/>
:::

Nginx 不适合做大数据量的传输<br/>
LVS是一个更高性能的负载均衡器，Nginx是一个隧道式的代理（请求和响应都经过代理服务器），LVS不仅可以做隧道式的，还可以做 DR模型（请求接入的时候会通过代理服务器，但是返回的时候不经过代理服务器，直接中转到机房的网关（不在纯粹的内网环境））
## 反向代理在系统架构中的应用场景
通过反向代理实现 集群和负载均衡。
:::tip
QPS 并发量（同时的点击量）

集群就是全部是一模一样的的服务，负载均衡是集群按照某种策略同时对外提供服务，实现服务高可用<br/>
负载均衡可以设计一些算法，轮询，重试机制（访问失败换服务）<br/>
:::
## Nginx的反向代理配置
关键字：proxy_pass
1. 可以跟要代理的地址，这个地址可以是具体的主机，也可以是具体的网址
2. 可以配置一组服务器，实现基于反向代理的负载均衡。
